import { defineStore } from "pinia";
import request from "@/business/api/modules/ecology.js";
import request1 from "@/business/api/modules/user.js";
// const userApi = {}
export default defineStore("settimereq", {
  state: () => {
    return {
      // isLogin: false,
      ecologyMsg: { handleTime: null, isHasCircleMsg: false },
      mineMsg: { handleTime: null, isHasCircleMsg: false },
    };
  },
  actions: {
    // 生态消息
    ecologyMsgFn() {
      request
        .getUserIsHasCircleMsgApi()
        .then((res) => {
          const isHasCircleMsg = res.data?.circel_num > 0;
          if (!this.ecologyMsg.isHasCircleMsg && isHasCircleMsg) {
            uni.showTabBarRedDot({
              index: 1,
            });
          } else if (this.ecologyMsg.isHasCircleMsg && !isHasCircleMsg) {
            uni.hideTabBarRedDot({
              index: 1,
            });
          }
          this.ecologyMsg.isHasCircleMsg = isHasCircleMsg;
        })
        .catch((err) => {
          console.log("err", err);
        });
    },
    ecologySetTimeReqFn() {
      if (this.ecologyMsg.handleTime) {
        this.ecologyClearTimeReqFn();
      }
      this.ecologyMsgFn();
      this.ecologyMsg.handleTime = setInterval(() => {
        this.ecologyMsgFn();
      }, 1000*60*5);
    },
    ecologyClearTimeReqFn() {
      if (this.ecologyMsg.handleTime) {
        clearInterval(this.ecologyMsg.handleTime);
      }
    },
    mineMsgFn() {
      request1
        .getLoginUserInfo()
        .then((res) => {
          const isHasCircleMsg = !!res.data?.is_msg;
          if (!this.mineMsg.isHasCircleMsg && isHasCircleMsg) {
            uni.showTabBarRedDot({
              index: 3,
            });
          } else if (this.mineMsg.isHasCircleMsg && !isHasCircleMsg) {
            uni.hideTabBarRedDot({
              index: 3,
            });
          }
          this.mineMsg.isHasCircleMsg = isHasCircleMsg;
        })
        .catch((err) => {
          console.log("err", err);
        });
    },
    mineSetTimeReqFn() {
      if (this.mineMsg.handleTime) {
        this.mineClearTimeReqFn();
      }
      this.mineMsgFn();
      this.mineMsg.handleTime = setInterval(() => {
        this.mineMsgFn();
      }, 1000*60*5);
    },
    mineClearTimeReqFn() {
      if (this.mineMsg.handleTime) {
        clearInterval(this.mineMsg.handleTime);
      }
    },
  },
});
